/*
 * Copyright 2010 David de Mingo
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package org.shalma.internal.client.view;


public class OperationView {

	// private Operation operation;
	//
	// //private BeanViewTmp beanView;
	//
	// private List parameterViews;
	//
	// private FlexTable container;
	//
	// private List listeners;
	//
	// // ///
	//
	// public OperationView(Operation operation, BeanViewTmp view) {
	// super();
	// this.operation = operation;
	// this.beanView = view;
	// parameterViews = new ArrayList();
	// container = new FlexTable();
	//
	// List parameters = operation.getParameters();
	// for (int i = 0; i < parameters.size(); i++) {
	// ParameterView parameterView = new ParameterView(
	// ((Parameter) parameters.get(i)).getName());
	// parameterView.addKeyboardListener(this);
	// parameterViews.add(parameterView);
	// container.setWidget(0, i + 1, parameterView);
	// }
	//
	// initWidget(container);
	// }
	//
	// // ///
	//
	// public void addListener(OperationViewListener listener) {
	// if (listeners == null)
	// listeners = new ArrayList();
	// listeners.add(listener);
	// }
	//
	// public void removeListener(OperationViewListener listener) {
	// if (listeners != null)
	// listeners.remove(listener);
	// }
	//
	// // ///
	//
	// public Widget getHeader() {
	// Label header = new Label(operation.getName());
	// header.addClickListener(this);
	// header.setStyleName("shalma_model-OperationView-header");
	// return header;
	// }
	//
	// // ///
	//
	// public void onClick(Widget sender) {
	// invokeMethod();
	// }
	//
	// public void onKeyDown(Widget sender, char keyCode, int modifiers) {
	// }
	//
	// public void onKeyPress(Widget sender, char keyCode, int modifiers) {
	// }
	//
	// public void onKeyUp(Widget sender, char keyCode, int modifiers) {
	// if (keyCode == 13)
	// invokeMethod();
	// }
	//
	// // ///
	//
	// void invokeMethod() {
	//
	// final List arguments = new ArrayList();
	//
	// for (Iterator iter = parameterViews.iterator(); iter.hasNext();) {
	// ParameterView view = (ParameterView) iter.next();
	// arguments.add(view.getValue());
	// }
	//
	// Object result = operation.invoke(beanView.getObject(), arguments);
	//
	// if (result == null)
	// fireResult(result);
	// else if (result instanceof Entity) {
	// // TODO
	// Window.alert("TODO");
	// // Bean bean =
	// // BeanManager.instance().getBean(GWT.getTypeName(result));
	// // ObjectBrowser browser = new ObjectBrowser();
	// // browser.setBean(bean, (IsBean) result);
	// // browser.show();
	// } else
	// fireResult(result);
	// }
	//
	// // ///
	//
	// private void fireResult(Object result) {
	// if (listeners == null)
	// Window.alert(String.valueOf(result));
	// else
	// for (Iterator iterator = listeners.iterator(); iterator.hasNext();)
	// ((OperationViewListener) iterator.next()).returned(result);
	// }
}
